<HTML><title>Semantics of Views</title>
<BODY>
<h1>Semantics of Views</h1>
<h4>Subranging</h4>
<p>Subranging takes a number of range restrictions and produces a matrix view 
  which has the same number of dimensions but different shape. For example, restricting 
  the range to the last 5 indexes in each dimension again produces a 3-dimensional 
  matrix (view) but now with less extent. 
<h4>Slicing</h4>
<p>Slicing blends out one or more dimensions. It produces a matrix view which 
  is lower dimensional than the original. In the above picture, the second dimension 
  has been fixed to index 2, yielding a flat two-dimensional plate. Since the 
  view has a 2-dimensional type it will accept any operation defined on two-dimensional 
  matrices and may be used as argument to any external method operating on 2-dimensional 
  matrices. 
<h4>Dicing</h4>
<p>Dicing virtually rotates the matrix. It exchanges one or more axes of the coordinate 
  system. Thus, a 3 x 4 matrix can be seen as a 4 x 3 matrix, a 3 x 4 x 5 matrix 
  can be seen as a 5 x 3 x 4 matrix, and so on. Dicing produces a view with the 
  same dimensionality but different shape. 
<h4>Flipping</h4>
<p>Flipping mirrors coordinate systems. What used to be the first index becomes 
  the last, ..., what used to be the last index becomes the first. Thus, a matrix 
  can be seen from the &quot;left&quot;, the &quot;right&quot;, the &quot;top&quot;, 
  the &quot;bottom&quot;, the &quot;front&quot;, the &quot;backside&quot;, etc. 
  Flipping produces a view with the same dimensionality and the same shape. 
<h4>Striding</h4>
<p>Striding blends out all but every i-th cell. It produces a view with the same 
  dimensionality but smaller (or equal) shape. 
<h4>Selecting</h4>
<p>Selecting blends out all but certain indexes of slices, rows, columns. Indexes 
  may have arbitrary order and can occur multiple times. Selecting produces a 
  view with the same dimensionality but different shape (either larger or smaller). 
<h4>Sorting</h4>
<p>Sorting reorders cells along one given dimension. It produces a view with the 
  same dimensionality and the same shape but different cell order. 
<h4></h4>
<h4>Combinations</h4>
<p> 
<p> 
<p>All views are orthogonal to each other. They can be powerful tools, particularly 
  when applied in combination. Feeding the result of one view transformation into 
  another transformation can do complex things. 
<h4>Copying, Assignment &amp; Equality</h4>
<p> 
<p>Any matrix and view can be copied. Copying yields a new matrix <i>equal</i> 
  to the original (view) but entirely independent of the original. So changes 
  in the copy are not reflected in the original, and vice-versa. <br>
  Two matrices are <i>equal</i> if they have the same dimensionality (rank), value 
  type, shape and <i>identical</i> values in corresponding cells. <br>
  Assignment copies the cell values of one matrix into another matrix. Both matrices 
  must have the same dimensionality and shape.
<p>&nbsp;</p>
</BODY>
</HTML>